// Copyright 2016 The Fuchsia Authors
// Copyright (c) 2008 Travis Geiselbrecht
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT

#include <string.h>
#include <sys/types.h>

static char *___strtok = NULL;

char *strtok(char *s, char const *ct) {
  char *sbegin, *send;

  sbegin = s ? s : ___strtok;
  if (!sbegin) {
    return NULL;
  }
  sbegin += strspn(sbegin, ct);
  if (*sbegin == '\0') {
    ___strtok = NULL;
    return (NULL);
  }
  send = strpbrk(sbegin, ct);
  if (send && *send != '\0')
    *send++ = '\0';
  ___strtok = send;
  return (sbegin);
}
